#include "TADPersona.h"
#include "TADDirec.h"
#include "TADTrabaj.h"
#include <stdio.h>
#include <string.h>

Persona PedirPersona(){
   Persona P;
   P.NomPersona = PedirNombre();
   P.DNI=PedirNIF();
   printf("Introduce la edad: ");
   flushall();
   scanf("%hu",&P.Edad);
   printf("Es trabajador (1) o es directivo (2)?: ");
   flushall();
   scanf("%i", &P.EsTrabDir);
   P.DatosOcup = PedirOcup(P.EsTrabDir);
   P.Direccion=PedirDirecc();
   return(P);
}

Persona GenerarPersona (Nombre N, NIF D,unsigned short E,Ocup O, int Tipo, Direcc Dir){
   Persona P;
   P.NomPersona = N;
   P.DNI = D;
   P.Edad= E;
   P.EsTrabDir = Tipo;
   P.DatosOcup = CrearOcup(Tipo,O.EsTra,O.EsDirec);
   P.Direccion= Dir;
   return(P);
}

Persona GenerarPerFic(){
   Persona P;
   P.NomPersona = GenerarNomFic();
   P.DNI = GenerarNIFFic();
   P.Edad= 1;
   P.EsTrabDir = 1;
   P.DatosOcup = CrearOcup(P.EsTrabDir,TrabajFic(),DirecFic());
   P.Direccion = GenerarDireccFic();
   return(P);
}

void VisualizaPersona(Persona P){
	printf("\n");
	VisualizarNIF(P.DNI);
	VisualizaNombre(P.NomPersona);
	printf("\nEdad:\t\t\t\t%hu",P.Edad);
    PintarOcup(P.EsTrabDir,P.DatosOcup);
	PrintDirecc(P.Direccion);
}

int CompararPersona(Persona P1, Persona P2){
  int Res=0;
  Res=CompararNIF(P1.DNI, P2.DNI);
//  if (Res < 0) Res = 1;
//  else if (Res > 0) Res = 2;
  return(Res);
}

void CopiarPersona(Persona POri, Persona *PCopia){
	PCopia->Edad = POri.Edad;
	PCopia->EsTrabDir = POri.EsTrabDir;
	if (PCopia->EsTrabDir == 1){
		CopiarTrabajador(&PCopia->DatosOcup.EsTra, POri.DatosOcup.EsTra);
	}else{
		CopiarDirec(&PCopia->DatosOcup.EsDirec, POri.DatosOcup.EsDirec);
	}
	CopiarNombre(POri.NomPersona, &PCopia->NomPersona);
	CopiarNIF(POri.DNI, &PCopia->DNI);
	CopiarDirecc(POri.Direccion, &PCopia->Direccion);
}